﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//struct Stu 
//{
//	char c;
//	int i;
//	char c2;
//};
//int main()
//{
//	struct Stu s = { 0 };
//	printf("%zd\n", sizeof(s));//12
//	return 0;
//}
//
//struct Stu
//	{
//		char c;
//		char c2;
//		int i;
//		
//	};

//struct Stu
//{
//	double a;
//	char c;
//	int i;
//};
//int main()
//	{
//		struct Stu s2 = { 0 };
//		printf("%zd\n", sizeof(s2));
//		return 0;
//	}
//struct S3
//{
//	int a;
//	char c;
//};
//struct S4
//{
//	char c1;
//	struct S3 s3;
//	double d;
//};
//int main()
//{
//	printf("%zd\n", sizeof(struct S4));
//	return 0;
//}
//
//#pragma pack(1)
//struct S
//{
//	char c1;
//	int i;
//	char c2;
//};
//#pragma pack()
//int main()
//{
//	printf("%zd\n", sizeof(struct S));
//	return 0;
//}
//
//struct S
//{
//	int arr[1000];
//	int n;
//	double d;
//};
//void print(struct S tmp)
//{
//	int i = 0;
//	for (i = 0; i < 4; i++)
//	{
//		printf("%d ", tmp.arr[i]);
//	}
//	printf("%d ", tmp.n);
//	printf("%lf\n", tmp.d);
//}
//int main()
//{
//	struct S s = { {1,2,3,4},100,3.14 };
//	print(s);
//	return 0;
//}
//
////位段式的结构
//struct S
//{
//	int _a1:2;
//	int _a2:5;
//	int _a3:10;
//	int _a4:30;
//};
//int main()
//{
//	printf("%zd\n", sizeof(struct S));//8
//	return 0;
//}
//
////⼀个例⼦
//struct S
//{
//	char a : 3;
//	char b : 4;
//	char c : 5;
//	char d : 4;
//};
//int main()
//{
//	struct S s = { 0 };
//	s.a = 10;
//	s.b = 12;
//	s.c = 3;
//	s.d = 4;
//
//	return 0;
//}
////空间是如何开辟的？
//
//union Un
//{
//	char c;//1
//	int i;//4
//};
//int main()
//{
//	union Un u = { 0 };
//
//	printf("%zd\n", sizeof(u));//4
//
//	printf("%p\n", &(u));
//	printf("%p\n", &(u.i));
//	printf("%p\n", &(u.c));
//	return 0;
//}

//
//union Un
//{
//	char c;//1
//	int i;//4
//};
//int main()
//{
//	union Un u = { 0 };
//	u.i = 0x11223344;
//	u.c = 0x55;
//	return 0;
//}
//
//union U
//{
//	char c1[5];
//	int i; 
//};
//int main()
//{
//	union U u = { 0 };
//	printf("%zd\n", sizeof(u));
//	return 0;
//}

//写一个程序 判断大端还是小端
//int check_sys()
//{
//	int n = 1;
//	return (*(char*)&n);
//	
//}
//int main()
//{
//	int ret = check_sys();
//	返回1 小端
//	返回0 大端
//	if (ret == 1)
//	{
//		printf("小端\n");
//	}
//	else
//		printf("大端\n");
//	return 0;
//}

int check_sys()
{
	union U
	{
		char c;
		int i;
	}u;
	u.i = 1;
	return u.c;

}
int main()
{
	int ret = check_sys();
	//返回1 小端
	//返回0 大端
	if (ret == 1)
	{
		printf("小端\n");
	}
	else
		printf("大端\n");
	return 0;
}